1. Technical Field
This application generally relates to a computer system, and more particularly to techniques used with I/O operations.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as the Symmetrix™ family of data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more host processors and provide storage services to each host processor. An example data storage system may include one or more data storage devices, such as those of the Symmetrix™ family, that are connected together and may be used to provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations and also administrative tasks.
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
An application may be executing on a host computer system. The application may issue I/O requests, such as a write request, to a storage device serving as a database device. The database may become corrupted for a variety of reasons. For example, the database may be left in an unknown state if the write request fails to complete properly, such as when the write request is interrupted in the event of a system reset. The database may be corrupted, for example, if the database records are written partially or include incorrect data creating corrupted data. Another application may also corrupt the database by performing non-database write operations to the database devices. The chance of a database corruption may further increase in a system including multiple communication paths accessed by one or more hosts performing I/O operations to the database.
If the database corruption is not detected until some amount of time after a corrupted record has been written to the database, the corrupted data may have also been further propagated to other sources, for example, in connection with subsequent reading and writing of the corrupt data.
When a database corruption is detected, the database is restored because of the unknown state of the data. The database restoration process may be characterized as expensive and time consuming. During the restoration process, the database is unavailable for a period of time while using computer system resources to restore the data included therein to a valid known state.
It may be desirable to have an efficient technique which provides for detection and determination of a database corruption associated with a write operation in a timely manner. It may also be desirable to provide for determination of corrupt data prior to writing the corrupt data to a device and to provide for processing when corrupted data is detected prior to writing the data such that the data on the device is left in a valid state.